package com.sky.service;

import com.sky.entity.SysFile;
import org.springframework.lang.Nullable;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * 文件上传接口
 *
 * @author tzl
 */
public interface ISysFileService
{
    /**
     * 文件上传接口
     *
     * @param file 上传的文件
     * @return 访问地址
     * @throws Exception
     */
    public SysFile uploadFile(MultipartFile file) throws Exception;

    void deleteFile(String fileName) throws Exception;

    /**
     * 根据 URL 地址获取文件名。
     *
     * @param url 文件的 URL 地址
     * @return 去除前缀文件名
     */
    @Nullable
    String getName(@Nullable String url);

    /**
     * 获取文件byte[]
     *
     * @param objectName 存储桶里的对象名称
     * @return 结果
     */
    public byte[] getObjectByte(String objectName) throws Exception;

    /**
     * 获取文件byte[]
     *
     * @param keyToPath 自定义key,存储桶里的对象名称
     * @return 自定义key,byte[]
     */
    public Map<String, byte[]> getObjectByteMap(Map<String,String> keyToPath) throws Exception;
}
